#ifndef IDOCUMENT_DATA_H
#define IDOCUMENT_DATA_H

#include <QtCore/QList>

namespace core
{
class ConnectionData;
class IEditorItem;

class IDocumentData
{
public:
    enum Type
    {
        Text,
        GraphicModel,
        AbstractModel
    };

public:
    virtual Type type() const = 0;
    virtual void setConnectionData(const ConnectionData& data) = 0;
    virtual const ConnectionData& connectionData() const = 0;
    virtual bool supportsConnections() const = 0;
    virtual QList<ConnectionData> connections(
        const IEditorItem* item) const = 0;
    virtual void clearData(const QList<core::IEditorItem* >& preserve =
        QList<core::IEditorItem* >()) = 0;

    virtual ~IDocumentData() {}
};

} // namespace core

#endif
